/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import entities.Funcionario;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.Query;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContextType;

/**
 *
* @author Sostenes, Thiago, Felipe
 */
@Stateless
public class FuncionarioDao implements FuncionarioDaoLocal {

    @PersistenceContext(name = "SSGH-ejbPU", type = PersistenceContextType.TRANSACTION)
    EntityManager em;

    @Override
    public void create(Funcionario funcionario) {
        em.persist(funcionario);
    }

    @Override
    public boolean exists(Funcionario funcionario) {
        Query query = em.createQuery("SELECT f FROM Funcionario f WHERE f.cpf = ?1");
        query.setParameter(1, funcionario.getCpf());
        return !(query.getResultList().isEmpty());
    }

    @Override
    public List<Funcionario> list() {
        Query query = em.createQuery("SELECT f FROM Funcionario f");
        return query.getResultList();
    }

    @Override
    public void remove(Funcionario funcionario) {
        if (!em.contains(funcionario)) {
            funcionario = em.find(funcionario.getClass(), funcionario.getId());
        }
        em.remove(funcionario);
    }

    @Override
    public void update(Funcionario funcionario) {
        System.out.println("FUNCIONARIO: " + funcionario.getNome());
        em.merge(funcionario);
    }
}
